package controllers;

import java.util.ArrayList;
import java.util.List;
import java.util.Set;

import models.AvaliacaoFisica;
import models.Usuario;
import play.data.Form;
import play.mvc.Controller;
import play.mvc.Result;
import dao.DAOAvaliacaoFisica;
import dao.DAOUsuario;


public class AvaliacaoFisicaControle extends Controller {

	private static Form<AvaliacaoFisica> formAvaliacaoFisica = new Form<AvaliacaoFisica>(AvaliacaoFisica.class);

//	public static Result index() {
//		return listarView("", "");
//	}

	public static Result cadastrarView(){

		try {
			return ok(views.html.avaliacaoFisica.cadastrar.render());
		} catch (Exception e) {
			return ok("Erro ao exibir tela de cadastro de Avaliacao Fisica");
			//return listarView("alert-error", e.getMessage());
		}

	}

	public static Result editarView(int id){
		DAOAvaliacaoFisica dao = new DAOAvaliacaoFisica();
		try{
			AvaliacaoFisica avaliacaofisica = new AvaliacaoFisica();
			avaliacaofisica = dao.select(id);
			return ok(views.html.avaliacaoFisica.editar.render(avaliacaofisica));
		}catch(Exception e){
			return ok("erro ao tentar recuperar avaliacao fisica, para ser exibido no editar");
			//return listarView("alert-error", e.getMessage());
		}
	}

/*	public static Result listarView(String tipoAlerta, String mensagem){
		DAOAvaliacaoFisica dao = new DAOAvaliacaoFisica();
		try {
			return ok(views.html.avaliacaoFisica.listar.render(dao.select(), tipoAlerta, mensagem));
		} catch (Exception e) {
			return ok(views.html.avaliacaoFisica.listar.render(null, tipoAlerta, e.getMessage() +"<br/>"+ mensagem));
		}
	}
*/
	public static Result listarView(){
		DAOAvaliacaoFisica dao = new DAOAvaliacaoFisica();
		try {
			return ok(views.html.avaliacaoFisica.listar.render(dao.select()));
		} catch (Exception e) {
			return ok("Erro ao listar");
		}
	}

	public static Result cadastrar(){
		Form<AvaliacaoFisica> novoAvaliacaoFisica = formAvaliacaoFisica.bindFromRequest();
		AvaliacaoFisica avaliacao = novoAvaliacaoFisica.get();
		DAOAvaliacaoFisica dao = new DAOAvaliacaoFisica();
		try{
			dao.insert(avaliacao);
			return listarView();
			//return listarView("alert-success", "Avaliacao Fisica cadastrada com sucesso.");
		} catch (Exception e) {
			//return listarView("alert-error", e.getMessage());
			return listarView();
		}
	}

	public static Result editar(){
		Form<AvaliacaoFisica> novoAvaliacaoFisica = formAvaliacaoFisica.bindFromRequest();
		AvaliacaoFisica avaliacao = novoAvaliacaoFisica.get();
		DAOAvaliacaoFisica dao = new DAOAvaliacaoFisica();
		try{
			dao.update(avaliacao);
			//return listarView("alert-success", "Avaliacao Fisica editada com sucesso.");
			return listarView();
		} catch (Exception e) {
			//return listarView("alert-error", e.getMessage());
			return ok("Erro ao editar.");
		}

	}

	public static Result remover(){
		Form<AvaliacaoFisica> novoAvaliacaoFisica = formAvaliacaoFisica.bindFromRequest();
		AvaliacaoFisica avaliacao = novoAvaliacaoFisica.get();
		
		DAOAvaliacaoFisica dao = new DAOAvaliacaoFisica();
		
		try{
			dao.delete(avaliacao);
			return listarView();
			//return listarView("alert-success", "Avaliacao Fisica removida com sucesso.");
		}catch(Exception e){
			//return listarView("alert-error", e.getMessage());
			return ok("Erro ao deletar");
		}
	}


}